Motion estimation and compensation are widely used in video compression to leverage and make use of the temporal redundancy inherent between images of a video sequence. Motion information is usually represented by a displacement format with a motion vector and corresponding reference frame index to indicate the correspondence of a current coding block in the reference frame buffer. Such motion information is transmitted or otherwise conveyed to a decoder as overhead. Obviously, the goal in compression is to convey information for as little cost as possible, while still maintaining a desired objective and subjective quality of images.
In the state of the art video coding standard, namely the International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) Moving Picture Experts Group-4 (MPEG-4) Part 10 Advanced Video Coding (AVC) Standard/International Telecommunication Union, Telecommunication Sector (ITU-T) H.264 Recommendation (hereinafter the “MPEG-4 AVC Standard”), a motion vector is predicted by the median of its spatial causal neighboring motion vectors. This approach is very simple and effective when the motion field is relatively smooth and the neighboring motion vectors have high fidelities. However, when the motion field tends to be complicated, this approach may not work well by only selecting the median value of the neighboring motion vectors. Furthermore, there could be many low fidelity motion vectors surrounding a current coding block. These factors may cause a degradation of the quality of a motion vector predictor.
A technique known as motion vector competition (MVComp) is described in a first prior art approach. In MVComp, the procedure for motion vector predictor selection is incorporated within the rate-distortion optimization of a coding block. As a resulting output, MVComp explicitly transmits (or otherwise conveys, e.g., embedded on a media) the best motion vector predictor index to the decoder. In MVComp, a coding block has a set of motion vector predictors. The best motion vector predictor will be selected based on the rate-distortion (RD) optimization. The index of the motion vector predictor in the set will be explicitly transmitted to the decoder if the set has more than one candidate. The process is highly optimized because each of the motion vector predictors will be checked and compared with other motion vector predictors. The set can include motion vectors which come from both spatial and temporal causal neighboring blocks. Given a motion vector predictor set, this approach can also find the best predictor in the set in the rate-distortion sense. However, the complexity is very high at the encoder as it will take each predictor into the mode decision loop for each coding block. Another shortcoming is the overhead (e.g., the index of the motion vector predictor in the set) and can make this approach costly and inefficient especially for the low bitrate applications.